/**
 * Copyright (c) 2023-2024 Contributors to the Eclipse Foundation
 *
 * This program and the accompanying materials are made available under the
 * terms of the Apache License, Version 2.0 which is available at
 * https://www.apache.org/licenses/LICENSE-2.0.
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include "SampleApp.h"
#include "sdk/IPubSubClient.h"
#include "sdk/Logger.h"
#include "sdk/vdb/IVehicleDataBrokerClient.h"

#include "sdk/middleware/Middleware.h"
#include "services/seats/SeatsServiceClientFactory.h"

#include <utility>

namespace example {

SampleApp::SampleApp()
    : VehicleApp(velocitas::IVehicleDataBrokerClient::createInstance("vehicledatabroker"),
                 velocitas::IPubSubClient::createInstance("SampleApp")) {}

void SampleApp::onStart() {
    auto seatService =
        velocitas::SeatsServiceClientFactory::create(velocitas::Middleware::getInstance());

    if (seatService != nullptr) {
        velocitas::logger().info("Service available!");
    }
}

} // namespace example
